package co.edu.unal.satacredito.rest.domain.general;

import java.io.Serializable;
import java.util.Date;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class GenericTransaction implements Serializable {

	private static final long serialVersionUID = 1L;
	
	
	private String personName;
	
	
	private String document;
	
	
	private DocumentType documentType;
	
	
	private String cardNumber;
	
	
	private String cardCode;
	
	
	private CardType cardType;
	
	
	private Date cardDate;
	
	
	private String bank;
	
	
	private Integer franchise;
	
	
	private Date purchaseDate;
	
	
	private Float purchaseAmount;
	
	
	private String purchaseDetail;
	
	
	private Date validationDate;
	
	
	private ValidationResult validationResult;
	
	
	private String validationMessage;
	
	
	public GenericTransaction() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param personName
	 * @param document
	 * @param documentType
	 * @param cardNumber
	 * @param cardCode
	 * @param cardType
	 * @param cardDate
	 * @param bank
	 * @param franchise
	 * @param purchaseDate
	 * @param purchaseAmount
	 * @param purchaseDetail
	 * @param validationDate
	 * @param validationResult
	 * @param validationMessage
	 */
	public GenericTransaction(String personName, String document,
			DocumentType documentType, String cardNumber, String cardCode,
			CardType cardType, Date cardDate, String bank, Integer franchise,
			Date purchaseDate, Float purchaseAmount, String purchaseDetail) {
		this.personName = personName;
		this.document = document;
		this.documentType = documentType;
		this.cardNumber = cardNumber;
		this.cardCode = cardCode;
		this.cardType = cardType;
		this.cardDate = cardDate;
		this.bank = bank;
		this.franchise = franchise;
		this.purchaseDate = purchaseDate;
		this.purchaseAmount = purchaseAmount;
		this.purchaseDetail = purchaseDetail;
	}

	@XmlElement
	public String getPersonName() {
		return personName;
	}


	public void setPersonName(String personName) {
		this.personName = personName;
	}

	@XmlElement
	public String getDocument() {
		return document;
	}


	public void setDocument(String document) {
		this.document = document;
	}

	@XmlElement
	public DocumentType getDocumentType() {
		return documentType;
	}


	public void setDocumentType(DocumentType documentType) {
		this.documentType = documentType;
	}

	@XmlElement
	public String getCardNumber() {
		return cardNumber;
	}


	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}

	@XmlElement
	public String getCardCode() {
		return cardCode;
	}


	public void setCardCode(String cardCode) {
		this.cardCode = cardCode;
	}

	@XmlElement
	public CardType getCardType() {
		return cardType;
	}


	public void setCardType(CardType cardType) {
		this.cardType = cardType;
	}

	@XmlElement
	public Date getCardDate() {
		return cardDate;
	}


	public void setCardDate(Date cardDate) {
		this.cardDate = cardDate;
	}

	@XmlElement
	public String getBank() {
		return bank;
	}


	public void setBank(String bank) {
		this.bank = bank;
	}

	@XmlElement
	public Integer getFranchise() {
		return franchise;
	}


	public void setFranchise(Integer franchise) {
		this.franchise = franchise;
	}

	@XmlElement
	public Date getPurchaseDate() {
		return purchaseDate;
	}


	public void setPurchaseDate(Date purchaseDate) {
		this.purchaseDate = purchaseDate;
	}

	@XmlElement
	public Float getPurchaseAmount() {
		return purchaseAmount;
	}


	public void setPurchaseAmount(Float purchaseAmount) {
		this.purchaseAmount = purchaseAmount;
	}

	@XmlElement
	public String getPurchaseDetail() {
		return purchaseDetail;
	}


	public void setPurchaseDetail(String purchaseDetail) {
		this.purchaseDetail = purchaseDetail;
	}

	@XmlElement
	public Date getValidationDate() {
		return validationDate;
	}


	public void setValidationDate(Date validationDate) {
		this.validationDate = validationDate;
	}

	@XmlElement
	public ValidationResult getValidationResult() {
		return validationResult;
	}


	public void setValidationResult(ValidationResult validationResult) {
		this.validationResult = validationResult;
	}

	@XmlElement
	public String getValidationMessage() {
		return validationMessage;
	}


	public void setValidationMessage(String validationMessage) {
		this.validationMessage = validationMessage;
	}


	public static long getSerialversionuid() {
		return serialVersionUID;
	}	
}